﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
//using SegIdenMovilBT.Datos;
using SegIdenMovilBT.Entidad;
using SegIdenMovilBT.Datos;
using SegIdenMovilBT.Herramientas;

namespace SegIdenMovilBT.Delegate
{
    public class ConexionLocal:IDisposable
    {
        #region --- Constructor y Destructor ---
        public void Dispose()
        {
            GC.SuppressFinalize(this);
        }
        #endregion

        #region --- Metodos Propios ---
        public object ejecutarOperacion(Operacion operacion)
        {
            object resultado = null;

            switch (operacion.numero)
            {
                case Constantes.OPERACION_LISTAR_TIENDAS:
                    resultado = new TiendaDA().listarTienda();
                    break;
                case Constantes.OPERACION_VALIDAR_USUARIO:
                    resultado = new UsuarioDA().validarUsuario(operacion.usuario);
                    break;
                case Constantes.OPERACION_LISTAR_PARAMETROS:
                    resultado = new ParametroDA().listarParametro();
                    break;
                case Constantes.OPERACION_OBTENER_PRODUCTO:
                    resultado = new ProductoDA().obtenerProducto(operacion.producto, operacion.tienda);
                    break;
                case Constantes.OPERACION_CONSULTAR_ITEM:
                    resultado = new ItemDA().consultarItem(operacion.item);
                    break;
                case Constantes.OPERACION_LISTAR_CLIENTES:
                    resultado = new ClienteDA().listarCliente(operacion.cliente);
                    break;
                case Constantes.OPERACION_OBTENER_CLIENTE_PORDOCUMENTO:
                    resultado = new ClienteDA().obtenerClientePorDocumento(operacion.cliente);
                    break;
                case Constantes.OPERACION_REGISTRAR_VENTA:
                    resultado = new VentaDA().registrarVenta(operacion.venta);
                    break;
                case Constantes.OPERACION_REGISTRAR_PRESTAMO:
                    resultado = new PrestamoDA().registrarPrestamo(operacion.prestamo);
                    break;
            }

            return resultado;
        }
        #endregion
    }
}
